{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "17574565-b2a1-4a25-96d0-6a2d2f56f684",
   "metadata": {},
   "source": [
    "## Summary\n",
    "\n",
    "The 2.4.1 Release contains changes that continue to build upon the Jupyter Lab and Notebook 7.0 architecture changes implemented at 2.4.0. \n",
    "\n",
    "These modifications change how some familiar functionality is accessed, and provides some new ways to work with your Web GIS organization. Let's take a look at some of these new updates."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ea6769b7-0727-4afe-b5d0-c052726e4a46",
   "metadata": {},
   "source": [
    "Primary Python Support is for version 3.11.  Secondary support is provided for Python 3.10 and 3.12.  We have dropped Support for Python 3.9."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ff163308-2526-4b3a-965b-5b430738c5f8",
   "metadata": {},
   "source": [
    "> **Note:** The ArcGIS API for Python 2.4.1 release is supported with:\n",
    "* ArcGIS Pro 3.5 and later default and cloned environments\n",
    "* ArcGIS Enterprise 11.4 and later\n",
    "* Stand-alone _conda_ and Python environments"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f49067b4-26c2-498a-abae-02e5e904897d",
   "metadata": {},
   "source": [
    "## New processing option: [`Spatially Enabled DataFrame`](/python/api-reference/arcgis.features.toc.html#geoaccessor)\n",
    "We've provided an environment variable called _ARCGIS_GEOMETRY_ENGINE_ that allows you to explicitly set the library used for certain spatial spatial transformations, such as reading and/or writing of shapefiles and file geodatabases. See the API Reference for the [GeoAccessor](/python/api-reference/arcgis.features.toc.html#geoaccessor) for details. Methods to which this processing applies are noted in the Reference documentation.\n",
    "\n",
    "You can set the processing environment at the top a document with:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "e6414cca-8b53-43c2-bb31-4135db665621",
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "os.environ[\"ARCGIS_GEOMETRY_ENGINE\"] = \"Engine_of_Choice\""
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3da4c48b-3c82-490f-9b76-d2063307b56c",
   "metadata": {},
   "source": [
    "## New class: [`arcgis.gis.OfflineContentManager`](/python/api-reference/arcgis.gis.toc.html#offlinecontentmanager)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a3b59934-0694-41d2-8721-0a7bcdffa94b",
   "metadata": {},
   "source": [
    "The new [`OfflineContentManager`](/python//api-reference/arcgis.gis.toc.html#arcgis.gis.OfflineContentManager) provides functionality to package organizational content with options for defining a dependency tree, list the content of the resulting package, as well as import this content to another organization. In effect this allows cloning content in disconnected environments.   This class utilizes the new _arcgis.apps.itemgraph_ module to create packages that can be used for downloading items and their dependencies for uploading items into other deployments in a disconnected environment. The [`export_items()`](/python/api-reference/arcgis.gis.toc.html#arcgis.gis.OfflineContentManager.export_items) method provides paramters to specify how items and thier dependencies are packaged and then exported to a desired location. The [`list_items()`](/python/api-reference/arcgis.gis.toc.html#arcgis.gis.OfflineContentManager.list_items) method provides access to explore the output pacakge, and the [`import_content()`](/python/api-reference/arcgis.gis.toc.html#arcgis.gis.OfflineContentManager.import_content) operation loads package contents into a desired deployment. See the API Reference for code examples."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7f2716f6-cc9f-4fb6-a824-00831c01290f",
   "metadata": {},
   "source": [
    "## New capabilities: [`arcgis.gis.workflowmanager`](/python/api-reference/arcgis.gis.workflowmanager.html)\n",
    "The API includes new implementations for listening, receiving and sending workflow manager messages. These updates allow for step execution which allow users to run, stop and finish steps. The improved messaging allows easy viewing of progress and whether calls succeeded. See new classes:\n",
    " * [`ExecutionStatus`](/python/latest/api-reference/arcgis.gis.workflowmanager.html#arcgis.gis.workflowmanager.ExecutionStatus) \n",
    " * [`JobExecution`](/python/latest/api-reference/arcgis.gis.workflowmanager.html#arcgis.gis.workflowmanager.JobExecution)\n",
    " * [`MessageType`](/python/latest/api-reference/arcgis.gis.workflowmanager.html#arcgis.gis.workflowmanager.MessageType)\n",
    " * [`Notification`](/python/latest/api-reference/arcgis.gis.workflowmanager.html#arcgis.gis.workflowmanager.notification)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d236df3b-9f5f-4a7a-b1e4-ce23a28e2032",
   "metadata": {},
   "source": [
    "## New classes: [`arcgis.graph`](/python/api-reference/arcgis.graph.html)\n",
    "This module has added multiple new dataclasses to help with setting the correct syntax for functions so requests are all processed appropriately. The classes are strongly typed for input and outputs so all endpoints receive exactly what is expected. Check out the API Reference for details: \n",
    "* [Data Model Types](/python/api-reference/arcgis.graph.html#data-model-types)\n",
    "* [Graph Types](/python/api-reference/arcgis.graph.html#graph-types)\n",
    "* [Search Types](/python/api-reference/arcgis.graph.html#search-types)\n",
    "* [Response Types](/python/api-reference/arcgis.graph.html#response-types)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "44159000-6f6b-473f-8243-8a2e809bc302",
   "metadata": {},
   "source": [
    "## New module: [`arcgis.apps.itemgraph`](/python/api-reference/arcgis.apps.itemgraph.html)\n",
    "The [`itemgraph`](/python/api-reference/arcgis.apps.itemgraph.html) submodule provides classes and functions for building a dependency graph for organizational [_Item_](/python/api-reference/arcgis.gis.toc.html#item) content. Module members can be used directly, or the [OfflineContentManager](/python/api-reference/arcgis.gis.toc.html#arcgis.gis.OfflineContentManager) can be used to utilize the functionality."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "10347e9f-b4b9-4dcf-855b-4cf2fc5f5426",
   "metadata": {},
   "source": [
    "### Functions\n",
    "\n",
    "* [create_dependency_graph()](/python/api-reference/arcgis.apps.itemgraph.html#arcgis.apps.itemgraph.create_dependency_graph)\n",
    "* [load_from_file()](/python/api-reference/arcgis.apps.itemgraph.html#arcgis.apps.itemgraph.load_from_file)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c7a09e11-2731-4b32-a260-12dceed86505",
   "metadata": {},
   "source": [
    "### Classes\n",
    "* [ItemGraph](/python/api-reference/arcgis.apps.itemgraph.html#arcgis.apps.itemgraph.ItemGraph)\n",
    "* [ItemNode](/python/api-reference/arcgis.apps.itemgraph.html#arcgis.apps.itemgraph.ItemNode)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.11"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
